package com.linux.huhx.utils;

import org.springframework.util.StringUtils;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * 时间的转换工具类
 * 
 * @author huhx
 * @date: 2016年12月19日 上午11:24:34
 */
public class DateFormatUtils {
	public final static String DEFAULT_PATTERN = "yyyy-MM-dd";
	public final static String DATETIME_PATTERN = "yyyy-MM-dd HH:mm:ss";

	// 将日期转换成字符串
	public static final String formatDate(Date date, String pattern) {
		SimpleDateFormat simpleDateFormat = new SimpleDateFormat(pattern);
		return simpleDateFormat.format(date);
	}

	// 默认是yyyy-MM-dd类型的
	public static final String formatDate(Date date) {
		String pattern = DateFormatUtils.DEFAULT_PATTERN;
		return formatDate(date, pattern);
	}

	// 将字符串解析成时间
	public static final Date formatString(String dateStr, String pattern) {
		if (StringUtils.isEmpty(dateStr)) {
			return null;
		}
		SimpleDateFormat simpleDateFormat = new SimpleDateFormat(pattern);
		try {
			return simpleDateFormat.parse(dateStr);
		} catch (ParseException e) {
			e.printStackTrace();
		}
		return null;
	}

	// 默认是yyyy-MM-dd类型的
	public static final Date formatString(String dateStr) {
		String pattern = DateFormatUtils.DEFAULT_PATTERN;
		return formatString(dateStr, pattern);
	}
	
	public static void main(String[] args) {
		String dateStr1 = "2016-09-26 12:23:34";
//		String dateStr1 = "2016-09-26"; 如果是这样的字符串，会报不能解析的错误。
		System.out.println(formatString(dateStr1, DATETIME_PATTERN));
		System.out.println(formatString("20160907", "yyyy-MM-dd")); // 这样会报错
	}


	public static String getNowStringTime() {
		return DateFormatUtils.formatDate(new Date(), DateFormatUtils.DATETIME_PATTERN);
	}
}
